#Introduction Section:

Description of dataset

This synthetic dataset simulates real-world lung cancer cases, including demographics, medical history, treatments, and outcomes. It supports predictive modeling, prognosis assessment, and treatment analysis in research.

Question of Interest

How can patient age, medical history and tumor characteristics,predict the stage of lung cancer at diagnosis? And how patients cluster by stage?

  Patient_ID             Age           Gender         
 Length:23658       Min.   :30.00   Length:23658      
 Class :character   1st Qu.:42.00   Class :character  
 Mode  :character   Median :54.00   Mode  :character  
                    Mean   :54.44                     
                    3rd Qu.:67.00                     
                    Max.   :79.00                     
 Smoking_History    Tumor_Size_mm   Tumor_Location    
 Length:23658       Min.   :10.00   Length:23658      
 Class :character   1st Qu.:32.97   Class :character  
 Mode  :character   Median :55.30   Mode  :character  
                    Mean   :55.38                     
                    3rd Qu.:78.19                     
                    Max.   :99.99                     
    Stage            Treatment         Survival_Months 
 Length:23658       Length:23658       Min.   :  1.00  
 Class :character   Class :character   1st Qu.: 30.00  
 Mode  :character   Mode  :character   Median : 60.00  
                                       Mean   : 59.86  
                                       3rd Qu.: 89.00  
                                       Max.   :119.00  
  Ethnicity         Insurance_Type     Family_History    
 Length:23658       Length:23658       Length:23658      
 Class :character   Class :character   Class :character  
 Mode  :character   Mode  :character   Mode  :character  
                                                         
                                                         
                                                         
 Comorbidity_Diabetes Comorbidity_Hypertension
 Length:23658         Length:23658            
 Class :character     Class :character        
 Mode  :character     Mode  :character        
                                              
                                              
                                              
 Comorbidity_Heart_Disease Comorbidity_Chronic_Lung_Disease
 Length:23658              Length:23658                    
 Class :character          Class :character                
 Mode  :character          Mode  :character                
                                                           
                                                           
                                                           
 Comorbidity_Kidney_Disease Comorbidity_Autoimmune_Disease
 Length:23658               Length:23658                  
 Class :character           Class :character              
 Mode  :character           Mode  :character              
                                                          
                                                          
                                                          
 Comorbidity_Other  Performance_Status Blood_Pressure_Systolic
 Length:23658       Min.   :0          Min.   : 90.0          
 Class :character   1st Qu.:1          1st Qu.:112.0          
 Mode  :character   Median :2          Median :134.0          
                    Mean   :2          Mean   :134.5          
                    3rd Qu.:3          3rd Qu.:157.0          
                    Max.   :4          Max.   :179.0          
 Blood_Pressure_Diastolic Blood_Pressure_Pulse Hemoglobin_Level
 Min.   : 60.00           Min.   :60.00        Min.   :10.00   
 1st Qu.: 72.00           1st Qu.:70.00        1st Qu.:11.99   
 Median : 85.00           Median :80.00        Median :13.98   
 Mean   : 84.48           Mean   :79.59        Mean   :14.00   
 3rd Qu.: 97.00           3rd Qu.:90.00        3rd Qu.:16.00   
 Max.   :109.00           Max.   :99.00        Max.   :18.00   
 White_Blood_Cell_Count Platelet_Count  Albumin_Level  
 Min.   : 3.501         Min.   :150.0   Min.   :3.000  
 1st Qu.: 5.109         1st Qu.:224.9   1st Qu.:3.505  
 Median : 6.730         Median :299.9   Median :4.000  
 Mean   : 6.736         Mean   :299.9   Mean   :3.999  
 3rd Qu.: 8.354         3rd Qu.:375.4   3rd Qu.:4.499  
 Max.   :10.000         Max.   :450.0   Max.   :5.000  
 Alkaline_Phosphatase_Level Alanine_Aminotransferase_Level
 Min.   : 30.01             Min.   : 5.001                
 1st Qu.: 52.62             1st Qu.:13.816                
 Median : 75.09             Median :22.548                
 Mean   : 75.03             Mean   :22.505                
 3rd Qu.: 97.45             3rd Qu.:31.093                
 Max.   :119.99             Max.   :40.000                
 Aspartate_Aminotransferase_Level Creatinine_Level   LDH_Level    
 Min.   :10.00                    Min.   :0.5000   Min.   :100.0  
 1st Qu.:20.07                    1st Qu.:0.7488   1st Qu.:137.4  
 Median :30.27                    Median :1.0012   Median :174.4  
 Mean   :30.13                    Mean   :0.9995   Mean   :174.7  
 3rd Qu.:40.11                    3rd Qu.:1.2492   3rd Qu.:212.2  
 Max.   :50.00                    Max.   :1.5000   Max.   :250.0  
 Calcium_Level    Phosphorus_Level Glucose_Level    Potassium_Level
 Min.   : 8.000   Min.   :2.500    Min.   : 70.00   Min.   :3.500  
 1st Qu.: 8.641   1st Qu.:3.120    1st Qu.: 89.83   1st Qu.:3.872  
 Median : 9.259   Median :3.731    Median :109.95   Median :4.242  
 Mean   : 9.261   Mean   :3.743    Mean   :109.90   Mean   :4.246  
 3rd Qu.: 9.883   3rd Qu.:4.364    3rd Qu.:130.06   3rd Qu.:4.618  
 Max.   :10.500   Max.   :5.000    Max.   :150.00   Max.   :5.000  
  Sodium_Level   Smoking_Pack_Years
 Min.   :135.0   Min.   :  0.0168  
 1st Qu.:137.5   1st Qu.: 25.0268  
 Median :140.0   Median : 49.9262  
 Mean   :140.0   Mean   : 49.9136  
 3rd Qu.:142.5   3rd Qu.: 74.9246  
 Max.   :145.0   Max.   : 99.9995  
      Age        Tumor_Size_mm       Stage       Survival_Months 
 Min.   :30.00   Min.   :10.00   Min.   :1.000   Min.   :  1.00  
 1st Qu.:42.00   1st Qu.:32.97   1st Qu.:2.000   1st Qu.: 30.00  
 Median :54.00   Median :55.30   Median :3.000   Median : 60.00  
 Mean   :54.44   Mean   :55.38   Mean   :2.509   Mean   : 59.86  
 3rd Qu.:67.00   3rd Qu.:78.19   3rd Qu.:4.000   3rd Qu.: 89.00  
 Max.   :79.00   Max.   :99.99   Max.   :4.000   Max.   :119.00  
 Performance_Status Blood_Pressure_Systolic
 Min.   :0          Min.   : 90.0          
 1st Qu.:1          1st Qu.:112.0          
 Median :2          Median :134.0          
 Mean   :2          Mean   :134.5          
 3rd Qu.:3          3rd Qu.:157.0          
 Max.   :4          Max.   :179.0          
 Blood_Pressure_Diastolic Blood_Pressure_Pulse Hemoglobin_Level
 Min.   : 60.00           Min.   :60.00        Min.   :10.00   
 1st Qu.: 72.00           1st Qu.:70.00        1st Qu.:11.99   
 Median : 85.00           Median :80.00        Median :13.98   
 Mean   : 84.48           Mean   :79.59        Mean   :14.00   
 3rd Qu.: 97.00           3rd Qu.:90.00        3rd Qu.:16.00   
 Max.   :109.00           Max.   :99.00        Max.   :18.00   
 White_Blood_Cell_Count Platelet_Count  Albumin_Level  
 Min.   : 3.501         Min.   :150.0   Min.   :3.000  
 1st Qu.: 5.109         1st Qu.:224.9   1st Qu.:3.505  
 Median : 6.730         Median :299.9   Median :4.000  
 Mean   : 6.736         Mean   :299.9   Mean   :3.999  
 3rd Qu.: 8.354         3rd Qu.:375.4   3rd Qu.:4.499  
 Max.   :10.000         Max.   :450.0   Max.   :5.000  
 Alkaline_Phosphatase_Level Alanine_Aminotransferase_Level
 Min.   : 30.01             Min.   : 5.001                
 1st Qu.: 52.62             1st Qu.:13.816                
 Median : 75.09             Median :22.548                
 Mean   : 75.03             Mean   :22.505                
 3rd Qu.: 97.45             3rd Qu.:31.093                
 Max.   :119.99             Max.   :40.000                
 Aspartate_Aminotransferase_Level Creatinine_Level   LDH_Level    
 Min.   :10.00                    Min.   :0.5000   Min.   :100.0  
 1st Qu.:20.07                    1st Qu.:0.7488   1st Qu.:137.4  
 Median :30.27                    Median :1.0012   Median :174.4  
 Mean   :30.13                    Mean   :0.9995   Mean   :174.7  
 3rd Qu.:40.11                    3rd Qu.:1.2492   3rd Qu.:212.2  
 Max.   :50.00                    Max.   :1.5000   Max.   :250.0  
 Calcium_Level    Phosphorus_Level Glucose_Level    Potassium_Level
 Min.   : 8.000   Min.   :2.500    Min.   : 70.00   Min.   :3.500  
 1st Qu.: 8.641   1st Qu.:3.120    1st Qu.: 89.83   1st Qu.:3.872  
 Median : 9.259   Median :3.731    Median :109.95   Median :4.242  
 Mean   : 9.261   Mean   :3.743    Mean   :109.90   Mean   :4.246  
 3rd Qu.: 9.883   3rd Qu.:4.364    3rd Qu.:130.06   3rd Qu.:4.618  
 Max.   :10.500   Max.   :5.000    Max.   :150.00   Max.   :5.000  
  Sodium_Level   Smoking_Pack_Years
 Min.   :135.0   Min.   :  0.0168  
 1st Qu.:137.5   1st Qu.: 25.0268  
 Median :140.0   Median : 49.9262  
 Mean   :140.0   Mean   : 49.9136  
 3rd Qu.:142.5   3rd Qu.: 74.9246  
 Max.   :145.0   Max.   : 99.9995  

**Results for the Principal Component Analysis (PCA)**
The analysis was performed on 23658 individuals, described by 23 variables
*The results are available in the following objects:

   name               description                          
1  "$eig"             "eigenvalues"                        
2  "$var"             "results for the variables"          
3  "$var$coord"       "coord. for the variables"           
4  "$var$cor"         "correlations variables - dimensions"
5  "$var$cos2"        "cos2 for the variables"             
6  "$var$contrib"     "contributions of the variables"     
7  "$ind"             "results for the individuals"        
8  "$ind$coord"       "coord. for the individuals"         
9  "$ind$cos2"        "cos2 for the individuals"           
10 "$ind$contrib"     "contributions of the individuals"   
11 "$call"            "summary statistics"                 
12 "$call$centre"     "mean of the variables"              
13 "$call$ecart.type" "standard error of the variables"    
14 "$call$row.w"      "weights for the individuals"        
15 "$call$col.w"      "weights for the variables"          

**Results for the Principal Component Analysis (PCA)**
The analysis was performed on 23658 individuals, described by 23 variables
*The results are available in the following objects:

   name               description                          
1  "$eig"             "eigenvalues"                        
2  "$var"             "results for the variables"          
3  "$var$coord"       "coord. for the variables"           
4  "$var$cor"         "correlations variables - dimensions"
5  "$var$cos2"        "cos2 for the variables"             
6  "$var$contrib"     "contributions of the variables"     
7  "$ind"             "results for the individuals"        
8  "$ind$coord"       "coord. for the individuals"         
9  "$ind$cos2"        "cos2 for the individuals"           
10 "$ind$contrib"     "contributions of the individuals"   
11 "$call"            "summary statistics"                 
12 "$call$centre"     "mean of the variables"              
13 "$call$ecart.type" "standard error of the variables"    
14 "$call$row.w"      "weights for the individuals"        
15 "$call$col.w"      "weights for the variables"          
       eigenvalue percentage of variance
comp 1   1.059069               4.604649
comp 2   1.051125               4.570111
comp 3   1.043533               4.537100
comp 4   1.034462               4.497659
comp 5   1.030395               4.479977
comp 6   1.024297               4.453467

#Results Section:

#Key findings: 1.Age Distribution Across Stages: - Exploratory analysis showed that the age of patients is widely distributed across all tumor stages, with no significant clustering or trend of older patients in higher stages.

  1. Principal Component Analysis (PCA):
    • Based on the observation that there is no clear clustering in the PCA plot, the variables used are insufficient to differentiate between stages. Adding new variables, such as genetic markers or imaging features, could improve the ability to separate lung cancer stages. This should result in clearer clustering when using PCA or similar methods.
  2. Scree Plot Analysis:
    • The scree plot displays the percentage of variance explained by each principal component. The gradual decline in variance indicates that no single component dominates the data set, suggesting that multiple components contribute meaningfully to the overall variance. This plot helps determine the number of components to retain for further analysis.

#Discussion: ## Testable Hypothesis: Factors beyond smoking history and age, such as genetic mutations or environmental exposures, are stronger predictors of lung cancer tumor stage at diagnosis.

#To test this hypothesis, future research could: - Incorporate data on genetic markers or environmental pollutants. - Use multivariate regression or machine learning models to assess the combined impact of smoking, age, genetics, and environment on tumor stage.

LS0tCnRpdGxlOiAiTHVuZyBDYW5jZXIgRGF0YXNldCBBbmFseXNpcyIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKYGBge3Igc2V0dXAsIGluY2x1ZGU9RkFMU0V9CmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gRkFMU0UpCmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KEZhY3RvTWluZVIpCmxpYnJhcnkoZmFjdG9leHRyYSkKbGlicmFyeShkZXZ0b29scykKbGlicmFyeShjb3JycGxvdCkKbGlicmFyeShQZXJmb3JtYW5jZUFuYWx5dGljcykKbGlicmFyeShSdHNuZSkKbGlicmFyeSh1bWFwKQpsaWJyYXJ5KHJlc2hhcGUyKQpsaWJyYXJ5KGdnY29ycnBsb3QpCmxpYnJhcnkocG9seWNvcikKbGlicmFyeShiaWdtZW1vcnkpCmBgYAojSW50cm9kdWN0aW9uIFNlY3Rpb246CgojIERlc2NyaXB0aW9uIG9mIGRhdGFzZXQgClRoaXMgc3ludGhldGljIGRhdGFzZXQgc2ltdWxhdGVzIHJlYWwtd29ybGQgbHVuZyBjYW5jZXIgY2FzZXMsIGluY2x1ZGluZyBkZW1vZ3JhcGhpY3MsIG1lZGljYWwgaGlzdG9yeSwgdHJlYXRtZW50cywgYW5kIG91dGNvbWVzLiBJdCBzdXBwb3J0cyBwcmVkaWN0aXZlIG1vZGVsaW5nLCBwcm9nbm9zaXMgYXNzZXNzbWVudCwgYW5kIHRyZWF0bWVudCBhbmFseXNpcyBpbiByZXNlYXJjaC4KCiMgUXVlc3Rpb24gb2YgSW50ZXJlc3QKSG93IGNhbiBwYXRpZW50IGFnZSwgbWVkaWNhbCBoaXN0b3J5IGFuZCB0dW1vciBjaGFyYWN0ZXJpc3RpY3MscHJlZGljdCB0aGUgc3RhZ2Ugb2YgbHVuZyBjYW5jZXIgYXQgZGlhZ25vc2lzPyBBbmQgaG93IHBhdGllbnRzIGNsdXN0ZXIgYnkgc3RhZ2U/CgpgYGB7cn0KY25yZGF0YSA8LSByZWFkLmNzdigibHVuZ19jYW5jZXJfZGF0YS5jc3YiKQpoZWFkKGNucmRhdGEpCnN1bW1hcnkoY25yZGF0YSkKYGBgCgpgYGB7cn0KIyBTZWxlY3QgbnVtZXJpYyBwcmVkaWN0b3JzIGFuZCB0aGUgdGFyZ2V0IHZhcmlhYmxlIChTdGFnZSkKY25yZGF0YSRTdGFnZSA8LSBhcy5udW1lcmljKGZhY3RvcihjbnJkYXRhJFN0YWdlLCBsZXZlbHMgPSBjKCJTdGFnZSBJIiwgIlN0YWdlIElJIiwgIlN0YWdlIElJSSIsICJTdGFnZSBJViIpKSkKCm51bWVyaWNfZGF0YSA8LSBjbnJkYXRhICU+JSAKICBzZWxlY3Qod2hlcmUoaXMubnVtZXJpYykpCgpzdW1tYXJ5KG51bWVyaWNfZGF0YSkKYGBgCgpgYGB7cn0KI1RoZSBjb3JyZWxhdGlvbiBiZXR3ZWVuIHZhcmlhYmxlcwpjb3IubWF0ID0gY29yKG51bWVyaWNfZGF0YSwgdXNlID0gImNvbXBsZXRlLm9icyIpCgpgYGAKCmBgYHtyfQogICBnZ3Bsb3QoY25yZGF0YSwgYWVzKHggPSBBZ2UsIHkgPSBTdGFnZSwgY29sb3IgPSBUcmVhdG1lbnQpKSArCiAgICAgICAgZ2VvbV9qaXR0ZXIoYWxwaGEgPSAwLjYpICsKICAgICAgICBsYWJzKHRpdGxlID0gIkFnZSB2cy4gVHVtb3IgU3RhZ2UiLAogICAgICAgICAgICAgeCA9ICJQYXRpZW50IEFnZSIsCiAgICAgICAgICAgICB5ID0gIlR1bW9yIFN0YWdlIiwKICAgICAgICAgICAgIGNvbG9yID0gIlRyZWF0bWVudCIpICsKICAgICAgICB0aGVtZV9taW5pbWFsKCkKYGBgCgoKCmBgYHtyfQojIEhlYXQgbWFwIHNob3dpbmcgY29ycmVsYXRpb24gYmV0d2VlbiB2YXJpYWJsZXMKCm1lbHRlZF9jb3JfbWF0ID0gbWVsdChjb3IubWF0KQoKZ2dwbG90KGRhdGEgPSBtZWx0ZWRfY29yX21hdCwgYWVzKHg9VmFyMSwgeT1WYXIyLCBmaWxsPXZhbHVlKSkgKyAKZ2VvbV90aWxlKCkrCnRoZW1lKGF4aXMudGV4dC54ID0gZWxlbWVudF90ZXh0KGFuZ2xlID0gNDUsIGhqdXN0ID0gMSwgdmp1c3QgPSAxLCBzaXplID0gMTApKQpgYGAKCmBgYHtyLCB3YXJuaW5nID0gRkFMU0V9CmNoYXJ0LkNvcnJlbGF0aW9uKG51bWVyaWNfZGF0YVssIDE6Nl0sIGhpc3RvZ3JhbT1UUlVFLCBwY2g9MTkpCmBgYApgYGB7cn0KIyBQZXJmb3JtIFBDQQpQQ0EobnVtZXJpY19kYXRhLCBzY2FsZS51bml0ID0gVFJVRSwgbmNwID0gNSwgZ3JhcGggPSBUUlVFKQpgYGAKYGBge3J9CnJlcy5wY2EgPC0gUENBKG51bWVyaWNfZGF0YSwgZ3JhcGggPSBGQUxTRSkKcHJpbnQocmVzLnBjYSkKYGBgCgpgYGB7cn0KZWlnZW52YWx1ZXMgPC0gcmVzLnBjYSRlaWcKaGVhZChlaWdlbnZhbHVlc1ssIDE6Ml0pCmBgYApgYGB7cn0KcGNhX3Jlc3VsdCA8LSBQQ0EobnVtZXJpY19kYXRhLCBncmFwaCA9IEZBTFNFKQpmdml6X2VpZyhwY2FfcmVzdWx0LCBhZGRsYWJlbHMgPSBUUlVFLCB5bGltID0gYygwLCA1MCkpCmBgYAoKYGBge3J9CmNucmRhdGEkU3RhZ2UgPC0gYXMuZmFjdG9yKGNucmRhdGEkU3RhZ2UpCm51bWVyaWNfZGF0YSA8LSBuYS5vbWl0KG51bWVyaWNfZGF0YSkKCiMgUENBIEluZGl2aWR1YWwgUGxvdApmdml6X3BjYV9pbmQoCiAgcGNhX3Jlc3VsdCwKICBnZW9tLmluZCA9ICJwb2ludCIsICAgICAgICAgICAgICMgU2hvdyBwb2ludHMgZm9yIGluZGl2aWR1YWxzCiAgY29sLmluZCA9IGNucmRhdGEkU3RhZ2UsICAgICAgICAjIENvbG9yIGluZGl2aWR1YWxzIGJ5IFN0YWdlCiAgcGFsZXR0ZSA9ICJqY28iLCAgICAgICAgICAgICAgICAjIFVzZSBqb3VybmFsIGNvbG9yIHBhbGV0dGUKICBhZGRFbGxpcHNlcyA9IFRSVUUsICAgICAgICAgICAgICMgQWRkIGNvbmZpZGVuY2UgZWxsaXBzZXMKICBlbGxpcHNlLmxldmVsID0gMC45NSwgICAgICAgICAgICMgQ29uZmlkZW5jZSBsZXZlbCBmb3IgZWxsaXBzZXMKICBsYWJlbCA9ICJub25lIiwgICAgICAgICAgICAgICAgICMgUmVtb3ZlIGxhYmVscyBmb3IgaW5kaXZpZHVhbHMKICB0aXRsZSA9ICJQQ0E6IEluZGl2aWR1YWxzIENvbG9yZWQgYnkgU3RhZ2UiCikgKwogIHRoZW1lX21pbmltYWwoKSArCiAgdGhlbWUoCiAgICBwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxNiwgZmFjZSA9ICJib2xkIiwgaGp1c3QgPSAwLjUpLAogICAgbGVnZW5kLnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxMiksCiAgICBsZWdlbmQudGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gMTApCiAgKQpgYGAKCiNSZXN1bHRzIFNlY3Rpb246IAoKI0tleSBmaW5kaW5nczoKMS4qKkFnZSBEaXN0cmlidXRpb24gQWNyb3NzIFN0YWdlczoqKgotIEV4cGxvcmF0b3J5IGFuYWx5c2lzIHNob3dlZCB0aGF0IHRoZSBhZ2Ugb2YgcGF0aWVudHMgaXMgd2lkZWx5IGRpc3RyaWJ1dGVkIGFjcm9zcyBhbGwgdHVtb3Igc3RhZ2VzLCB3aXRoIG5vIHNpZ25pZmljYW50IGNsdXN0ZXJpbmcgb3IgdHJlbmQgb2Ygb2xkZXIgcGF0aWVudHMgaW4gaGlnaGVyIHN0YWdlcy4KCjIuICoqUHJpbmNpcGFsIENvbXBvbmVudCBBbmFseXNpcyAoUENBKToqKgogICAtIEJhc2VkIG9uIHRoZSBvYnNlcnZhdGlvbiB0aGF0IHRoZXJlIGlzIG5vIGNsZWFyIGNsdXN0ZXJpbmcgaW4gdGhlIFBDQSBwbG90LCB0aGUgdmFyaWFibGVzIHVzZWQgYXJlIGluc3VmZmljaWVudCB0byBkaWZmZXJlbnRpYXRlIGJldHdlZW4gc3RhZ2VzLiBBZGRpbmcgbmV3IHZhcmlhYmxlcywgc3VjaCBhcyBnZW5ldGljIG1hcmtlcnMgb3IgaW1hZ2luZyBmZWF0dXJlcywgY291bGQgaW1wcm92ZSB0aGUgYWJpbGl0eSB0byBzZXBhcmF0ZSBsdW5nIGNhbmNlciBzdGFnZXMuIFRoaXMgc2hvdWxkIHJlc3VsdCBpbiBjbGVhcmVyIGNsdXN0ZXJpbmcgd2hlbiB1c2luZyBQQ0Egb3Igc2ltaWxhciBtZXRob2RzLgoKMy4gKipTY3JlZSBQbG90IEFuYWx5c2lzOioqCiAgIC0gVGhlIHNjcmVlIHBsb3QgZGlzcGxheXMgdGhlIHBlcmNlbnRhZ2Ugb2YgdmFyaWFuY2UgZXhwbGFpbmVkIGJ5IGVhY2ggcHJpbmNpcGFsIGNvbXBvbmVudC4gVGhlIGdyYWR1YWwgZGVjbGluZSBpbiB2YXJpYW5jZSBpbmRpY2F0ZXMgdGhhdCBubyBzaW5nbGUgY29tcG9uZW50IGRvbWluYXRlcyB0aGUgZGF0YSBzZXQsIHN1Z2dlc3RpbmcgdGhhdCBtdWx0aXBsZSBjb21wb25lbnRzIGNvbnRyaWJ1dGUgbWVhbmluZ2Z1bGx5IHRvIHRoZSBvdmVyYWxsIHZhcmlhbmNlLiBUaGlzIHBsb3QgaGVscHMgZGV0ZXJtaW5lIHRoZSBudW1iZXIgb2YgY29tcG9uZW50cyB0byByZXRhaW4gZm9yIGZ1cnRoZXIgYW5hbHlzaXMuCgoKI0Rpc2N1c3Npb246CiMjIFRlc3RhYmxlIEh5cG90aGVzaXM6CkZhY3RvcnMgYmV5b25kIHNtb2tpbmcgaGlzdG9yeSBhbmQgYWdlLCBzdWNoIGFzIGdlbmV0aWMgbXV0YXRpb25zIG9yIGVudmlyb25tZW50YWwgZXhwb3N1cmVzLCBhcmUgc3Ryb25nZXIgcHJlZGljdG9ycyBvZiBsdW5nIGNhbmNlciB0dW1vciBzdGFnZSBhdCBkaWFnbm9zaXMuCgojVG8gdGVzdCB0aGlzIGh5cG90aGVzaXMsIGZ1dHVyZSByZXNlYXJjaCBjb3VsZDoKLSBJbmNvcnBvcmF0ZSBkYXRhIG9uIGdlbmV0aWMgbWFya2VycyBvciBlbnZpcm9ubWVudGFsIHBvbGx1dGFudHMuCi0gVXNlIG11bHRpdmFyaWF0ZSByZWdyZXNzaW9uIG9yIG1hY2hpbmUgbGVhcm5pbmcgbW9kZWxzIHRvIGFzc2VzcyB0aGUgY29tYmluZWQgaW1wYWN0IG9mIHNtb2tpbmcsIGFnZSwgZ2VuZXRpY3MsIGFuZCBlbnZpcm9ubWVudCBvbiB0dW1vciBzdGFnZS4KCgoK